Many knowledge base systems must be running continuously, responding to user queries and updating their knowledge base. Since main memory sizes have grown tremendously in the last decade or two, it is now feasible to keep even very large (tens or hundreds of gigabytes) knowledge bases in main memory. Such main memory based management of a large knowledge base offers many benefits, including overhead reduction by several orders of magnitude compared to disk-based knowledge bases.
However, all computer systems crash and must be restarted every now and then due to, e.g., software or hardware failures, power outages, and operator errors.
It is thus necessary for such systems to save the knowledge base to disk at least periodically. However, linearizing and writing tens or hundreds of gigabytes of complex, usually cyclic data can be quite time-consuming, generally taking at least several minutes to complete. Furthermore, the consistency of the saved copy must be ensured. This can be done using either complicated transaction mechanisms as known in the database literature, or by stopping all other activity (or at least updates) for the duration of serializing the snapshot.
It is generally not acceptable to stop all activity in interactive on-line systems for several minutes at a time. On the other hand, transaction mechanisms, especially if they are disk-based, tend to have rather high overhead that affects all operations in the system.
A low-overhead method of saving consistent snapshots of a large knowledge base in main memory is thus needed, and devices and computer software products utilizing such methods could have important competitive advantages.
For an in-depth description of various operating system concepts, such as virtual memory, address spaces, virtual addresses, pages, processes, threads, scheduling, the mmap function, and the fork function, the reader is referred to the book Uresh Vahalia: UNIX Internals—The New Frontiers, Prentice Hall, New Jersey, 1996. For an introduction to knowledge bases and knowledge representation, one is referred to R. Brachman and H. Levesque: Knowledge Representation and Reasoning, Morgan Kaufmann, 2004; H. Helbig: Knowledge Representation and the Semantics of Natural Language, Springer, 2006; and I. Vlahavas and N. Bassiliades: Parallel, Object-Oriented and Active Knowledge Base Systems, Kluwer, 1998. One skilled in the art should understand both knowledge base and knowledge representation concepts and operating system concepts.